package com.tom.springframework.beans.factory.config;

/**
 * 单例bean的注册接口规范
 * <pre>
 *     (包含了 存进去 registerSingleton和取出来getSingleton)
 * </pre>
 *
 * @author zx
 * @date 2024-11-05 09:47
 */
public interface SingletonBeanRegistry {
    /**
     * 通过 bean 名称获取对应的单例对象
     *
     * @param beanName bean名称
     * @return 对应的单例对象
     */
    Object getSingleton(String beanName);

    /**
     * 注册单例bean对象
     * <pre>
     *     注册单例bean对象，放入到单例池
     * </pre>
     *
     * @param beanName        bean 的名称
     * @param singletonObject 对应的单例对象
     */
    void registerSingleton(String beanName, Object singletonObject);
}
